home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 49 / Amiga Format CD49 (2000-01-17)(Future Publishing)(GB)(Track 1 of 3)[!][issue 2000-02].iso / -serious- / graphics / gnuplot / gnuplot-3.7.1src / gnuplot-3.7.1 / makefile.os2 < prev    next >
Makefile  |  1999-11-29  |  11KB  |  347 lines

  1. #
  2. # $Id: makiˆ­ÐŸî.2.2 1999/10/28 10:14:55 lhecking Exp $
  3. #
  4. # Makefile for use with emx and GNUMake
  5. #   on OS/2 3.0 and above (might also work for OS/2 2.x)
  6. #
  7. # last modification date: 19991027
  8. #
  9.  
  10. # We depend on using cmd.exe (or a compatible one)
  11. SHELL=cmd.exe
  12.  
  13. #
  14. # ***************** Begin of Configuration section ***************************
  15. #
  16.  
  17. # Comment out the definition lines to disable the according features:
  18.  
  19. # X11 driver
  20. # requires installed XFree86
  21. X11=1
  22.  
  23. # GD (GIF) device driver
  24. # requires GD library (not part of gnuplot)
  25. GD=1
  26.  
  27. # PNG device driver
  28. # requires PNG and Z libraries (not part of gnuplot)
  29. PNG=1
  30.  
  31. # VESAkit support
  32. # requires SVGA- and VESA Kit (not part of gnuplot)
  33. VESA=1
  34.  
  35. # GNU_ReadLine support
  36. # requires GNU readline library (static or DLL; not part of gnuplot)
  37. GNU_RL=1
  38.  
  39. # DEBUGging support
  40. # creates binaries suitable for debugging. Some bugs may come and go
  41. # as opposed to a production build since we lower the optimization level
  42. # DEBUG=1
  43.  
  44. # MOUSE support for PM terminal
  45. # (not yet supported in official release)
  46. # MOUSE=1
  47.  
  48. #
  49. # ****************** End of Configuration section ****************************
  50. #
  51.  
  52. #
  53. # Miscellaneous setup
  54. #
  55.  
  56. .PHONY: all runtime alldocs demo binaries infomin clean veryclean
  57. .SUFFIXES: .c .trm .o .obj .exe
  58.  
  59. # seems to be a reasonable default ...
  60. default: runtime
  61.  
  62. # a help screen
  63. help:
  64.        @echo " Usage: $(MAKE) -f makefile.os2 target"
  65.        @echo "   target is one of:"
  66.        @echo "   all runtime alldocs demo binaries infomin help clean veryclean"
  67.  
  68. #
  69. # Definitions of flags and symbols used by makefile.all and makefile.os2
  70. #
  71.  
  72. # these definitions are used by makefile.all
  73. T=term/
  74. D=docs/
  75. L=$(D)latextut/
  76. M=demo/
  77.  
  78. #
  79. # Definitions valid for all targets on OS/2
  80. #
  81.  
  82. OS2DIR = os2
  83. DOCDIR = docs
  84. DEMODIR=demo
  85. TERMDIR=term
  86.  
  87. OS2TERMS= $(TERMDIR)\pm.trm
  88. ifdef X11
  89.     OS2TERMS += $(TERMDIR)\x11.trm
  90. endif
  91. ifdef VESA
  92.     OS2TERMS += $(TERMDIR)\emxvga.trm
  93. endif
  94.  
  95.  
  96. # where to place gnuplot.gih helpfile
  97. HELPFILE = gnuplot.gih
  98.  
  99. #
  100. # 3 sets of variables are defined and used to create
  101. #  (1): gnuplot.exe
  102. #   2 : gnupmdrv.exe (the PM-driver executable)
  103. #   3 : utilities like doc2*.exe, bf_test.exe, ...
  104. #
  105. CC  = gcc
  106. CC2 = gcc
  107. CC3 = gcc
  108. O  = o
  109. O2 = obj
  110. O3 = o
  111.  
  112. # Flags for compiler and linker under OS/2
  113. OS2FLAGS = -DOS2 -DHELPFILE=\"$(HELPFILE)\"
  114.  
  115. # Flags for compiling with EMX/GCC
  116. # Special note: -ffloat-store is necessary to avoid some
  117. # strange behaviour (confirmed for gcc 2.7.x and graphics.c)
  118. EMXSPECIFIC = -ffloat-store -DREADLINE -DHAVE_STRNICMP -DPIPES -DHAVE_STRERROR -DHAVE_SYS_SELECT_H -DHAVE_SYS_STAT_H
  119. LIBS = 
  120. ifdef GNU_RL
  121.   EMXSPECIFIC += -DHAVE_LIBREADLINE
  122.   LIBS += -lreadline -ltermcap
  123. endif
  124.  
  125. #
  126. # Choose flags suitable for a debugging or for a production build
  127. #
  128. ifdef DEBUG
  129. CFLAGS  = -g $(OS2FLAGS) $(EMXSPECIFIC) -Wall -Wno-comment -O0 -Zmt
  130. LFLAGS  = -g -Zcrtdll -Zmt
  131. CFLAGS2 = -g $(OS2FLAGS) $(EMXSPECIFIC) -Zomf -Zsys -Zmt -Wall -O0
  132. LFLAGS2 = -g -Zomf -Zmt -Zcrtdll
  133. CFLAGS3 = -g $(OS2FLAGS) $(EMXSPECIFIC) -Wall -Wno-comment -O0
  134. LFLAGS3 = -g
  135. else
  136. CFLAGS  = $(OS2FLAGS) $(EMXSPECIFIC) -O2 -Wall -Wno-unused -Wno-comment -Zmt
  137. LFLAGS  = -s -Zcrtdll -Zmt
  138. CFLAGS2 = $(OS2FLAGS) $(EMXSPECIFIC) -Zomf -Zcrtdll -Zmt -O2 -Wall -Wno-unused
  139. LFLAGS2 = -s -Zomf -Zmt -Zsys
  140. CFLAGS3 = $(OS2FLAGS) $(EMXSPECIFIC) -O2 -Wall -Wno-unused -Wno-comment
  141. LFLAGS3 = -s
  142. endif
  143.  
  144. #
  145. # Settings for the terminals to be included
  146. #
  147. TERMFLAGS = -I. -I$(T)
  148.  
  149. # All terminals available via #defines should be listed below
  150. # Some terminals can be en/disabled in the configuration at the
  151. # beginning of this Makefile.os2 but others may still require
  152. # changes in term.h
  153.  
  154. #
  155. # GIF-support
  156. ifdef GD
  157. TERMFLAGS += -DHAVE_LIBGD
  158. TERMLIBS  += -lgd
  159. endif
  160. # PNG-support
  161. ifdef PNG
  162. TERMFLAGS += -DHAVE_LIBPNG
  163. TERMLIBS  += -lpng -lz
  164. endif
  165. # SVGA-/VESAkit support
  166. ifdef VESA
  167. TERMFLAGS += -DEMXVESA
  168. TERMLIBS  += -ljmgraph -lvesa
  169. endif
  170. # X11 support
  171. ifdef X11
  172. TERMFLAGS += -DX11
  173. endif
  174. # MOUSE support for PM terminal
  175. ifdef MOUSE
  176. TERMFLAGS += -DUSE_MOUSE
  177. endif
  178.  
  179. #
  180. # Default Rules
  181. #
  182. .c.$(O):
  183.     $(CC)  $(CFLAGS) $(TERMFLAGS) -o $*.$(O) -c $*.c
  184. .c.obj:
  185.     $(CC2) $(CFLAGS2) -o $*.obj -c $*.c
  186.  
  187. #
  188. # Include dependencies valid for all platforms from makefile.all
  189. #
  190. include makefile.all
  191.  
  192. #
  193. # Pre-defined sets of targets:
  194. #
  195. all:         runtime demo
  196. alldocs:     gnuplot.gih gnuplot.inf gnuplot.html gnuplot.info \
  197.              gnuplot.dvi gnuplot.ps
  198. runtime:     binaries infomin gnuplot.inf
  199. infomin:     gnupmdrv.hlp gnuplot.gih
  200. demo:        $(M)binary1 $(M)binary2 $(M)binary3
  201. ifdef X11
  202. binaries: gnuplot.exe gnupmdrv.exe gnuplot_x11.exe
  203. else
  204. binaries: gnuplot.exe gnupmdrv.exe
  205. endif
  206.  
  207. OBJS = $(COREOBJS) version.$(O)
  208. term.$(O): $(OS2TERMS) term.h
  209.  
  210. gnuplot.exe: $(OBJS)
  211.     $(CC) -o $@ $(OBJS) $(TERMLIBS) $(LIBS) $(LFLAGS)
  212.  
  213. #
  214. # Build the PM outboard driver
  215. #
  216. $(OS2DIR)\gnupmdrv.$(O2):  $(OS2DIR)\gnupmdrv.c   $(OS2DIR)\gnupmdrv.h
  217. $(OS2DIR)\gclient.$(O2):   $(OS2DIR)\gclient.c    $(OS2DIR)\gnupmdrv.h
  218. $(OS2DIR)\dialogs.$(O2):   $(OS2DIR)\dialogs.c    $(OS2DIR)\gnupmdrv.h  $(OS2DIR)\dialogs.h
  219. $(OS2DIR)\print.$(O2):     $(OS2DIR)\print.c      $(OS2DIR)\gnupmdrv.h
  220. $(OS2DIR)\gnupmdrv.res :   $(OS2DIR)\gnupmdrv.rc  $(OS2DIR)\gnuplot.ico $(OS2DIR)\dialogs.h
  221.     cd $(OS2DIR) & rc -r gnupmdrv.rc & cd ..
  222. OS2OBJ = $(OS2DIR)\gnupmdrv.$(O2) $(OS2DIR)\gclient.$(O2) $(OS2DIR)\print.$(O2) \
  223.          $(OS2DIR)\dialogs.$(O2)
  224. gnupmdrv.exe: $(OS2OBJ) $(OS2DIR)\gnupmdrv.res $(OS2DIR)\gnupmdrv.def
  225.     $(CC2) $(LFLAGS2) -o $@ $(OS2OBJ) $(OS2DIR)\gnupmdrv.res $(OS2DIR)\gnupmdrv.def
  226. gnupmdrv.hlp: $(OS2DIR)\gnupmdrv.ipf
  227.     ipfc $(OS2DIR)\gnupmdrv.ipf
  228.     move $(OS2DIR)\gnupmdrv.hlp .
  229.  
  230. #
  231. # Build the X11 outboard driver
  232. #
  233.  
  234. # X11 libraries
  235. X11LIBS = -lX11 -lsocket -Zcrtdll
  236. # X11 includes
  237. X11INCLUDES = -I$(X11ROOT)/xfree86/include
  238. X11FLAGS= -Zmtd -Zsysv-signals
  239.  
  240. gnuplot_x11.exe: gplt_x11.o stdfn.o
  241.     $(CC) $(LFLAGS) $(X11FLAGS) $(EMXSPECIFIC) -o $@ $^ $(X11LIBS)
  242.  
  243. gplt_x11.o: gplt_x11.c
  244.     $(CC) $(CFLAGS) $(X11FLAGS) $(EMXSPECIFIC) $(X11INCLUDES) -c -o $@ $<
  245.  
  246. #
  247. # Create documentation in various formats
  248. #
  249. # Change the call to LaTeX if the "latex2e" is not appropiate for you
  250. # (and don't care about the strange way it's implemented ...)
  251. gnuplot.dvi: gnuplot.tex
  252.     copy gnuplot.tex $(DOCDIR)\gnuplot_2.tex
  253.     cd $(DOCDIR) & latex gnuplot_2.tex & latex gnuplot_2.tex
  254.     move $(DOCDIR)\gnuplot_2.dvi gnuplot.dvi
  255.     del $(DOCDIR)\gnuplot_2*
  256. gnuplot.tex:  $(DOCDIR)\gnuplot.doc doc2tex.exe
  257.     doc2tex $(DOCDIR)\gnuplot.doc gnuplot.tex
  258. gnuplot.ps: gnuplot.dvi
  259.     dvips -o gnuplot.ps gnuplot.dvi
  260. gnuplot.inf:  $(DOCDIR)\gnuplot.ipf
  261.     ipfc -i $(DOCDIR)\gnuplot.ipf gnuplot.inf
  262. gnuplot.gih:  $(DOCDIR)\gnuplot.doc doc2gih.exe
  263.     doc2gih $(DOCDIR)\gnuplot.doc gnuplot.gih
  264. gnuplot.html: $(DOCDIR)\gnuplot.doc doc2html.exe
  265.     doc2html $(DOCDIR)\gnuplot.doc gnuplot.html
  266. gnuplot.info: $(DOCDIR)\gnuplot.doc doc2info.exe
  267.     doc2info <$(DOCDIR)\gnuplot.doc >gnuplot.info
  268. gnuplot.texi: $(DOCDIR)\gnuplot.doc $(DOCDIR)\doc2texi.pl
  269.     perl $(DOCDIR)\doc2texi.pl $(DOCDIR)\gnuplot.doc >$(DOCDIR)\gnuplot.texi
  270. gnuplot.rtf:  $(DOCDIR)\gnuplot.doc doc2rtf.exe
  271.     doc2rtf $(DOCDIR)\gnuplot.doc gnuplot.rtf
  272. gnuplot.ms:   $(DOCDIR)\gnuplot.doc doc2ms.exe
  273.     doc2ms $(DOCDIR)\gnuplot.doc gnuplot.ms
  274. $(DOCDIR)\gnuplot.ipf:  $(DOCDIR)\gnuplot.doc doc2ipf.exe
  275.     doc2ipf $(DOCDIR)\gnuplot.doc $(DOCDIR)\gnuplot.ipf
  276. #
  277. # Tools for converting the documentation from docs\gnuplot.doc
  278. # in various formats
  279. #
  280. doc2gih.exe doc2ipf.exe doc2html.exe doc2info.exe doc2tex.exe doc2rtf.exe: \
  281.             $(DOCDIR)\termdoc.c $(DOCDIR)\xref.c $(DOCDIR)\allterm.h
  282. #
  283. # To include all terminal documentations in the documentation
  284. # uncomment the following 2 lines
  285. # doc2gih.exe doc2ipf.exe doc2html.exe doc2info.exe doc2tex.exe doc2rtf.exe: \
  286. #           $(DOCDIR)\termdoc.c $(DOCDIR)\xref.c $(DOCDIR)\allterm.h
  287.  
  288. $(DOCDIR)\allterm.h: $(CORETERM)
  289. #   echo > $@
  290.     cd $(TERMDIR) & type *.trm > ..\$@
  291. doc2gih.exe:  $(DOCDIR)\doc2gih.c $(DOCDIR)\termdoc.c $(OS2TERMS)
  292.     $(CC3) $(CFLAGS3) $(TERMFLAGS) -DALL_TERM_DOC -o $@ $(DOCDIR)\doc2gih.c $(DOCDIR)\termdoc.c
  293. doc2ipf.exe:  $(DOCDIR)\doc2ipf.c $(DOCDIR)\termdoc.c $(DOCDIR)\xref.c $(OS2TERMS)
  294.     $(CC3) $(CFLAGS3) $(TERMFLAGS) -DALL_TERM_DOC -o $@ $(DOCDIR)\doc2ipf.c $(DOCDIR)\termdoc.c $(DOCDIR)\xref.c
  295. doc2tex.exe:  $(DOCDIR)\doc2tex.c $(DOCDIR)\termdoc.c $(OS2TERMS) $(DOCDIR)\allterm.h
  296.     $(CC3) $(CFLAGS3) $(TERMFLAGS) -DALL_TERM_DOC -o $@ $(DOCDIR)\doc2tex.c $(DOCDIR)\termdoc.c
  297. doc2html.exe: $(DOCDIR)\doc2html.c $(DOCDIR)\termdoc.c $(DOCDIR)\xref.c $(OS2TERMS)
  298.     $(CC3) $(CFLAGS3) $(TERMFLAGS) -DALL_TERM_DOC -o $@ $(DOCDIR)\doc2html.c $(DOCDIR)\termdoc.c $(DOCDIR)\xref.c
  299. doc2info.exe: $(DOCDIR)\doc2info.c $(DOCDIR)\termdoc.c $(DOCDIR)\xref.c $(OS2TERMS)
  300.     $(CC3) $(CFLAGS3) $(TERMFLAGS) -DALL_TERM_DOC -o $@ $(DOCDIR)\doc2info.c $(DOCDIR)\termdoc.c $(DOCDIR)\xref.c
  301. doc2rtf.exe:  $(DOCDIR)\doc2rtf.c $(DOCDIR)\termdoc.c $(DOCDIR)\xref.c $(OS2TERMS)
  302.     $(CC3) $(CFLAGS3) $(TERMFLAGS) -DALL_TERM_DOC -o $@ $(DOCDIR)\doc2rtf.c $(DOCDIR)\termdoc.c $(DOCDIR)\xref.c
  303. doc2ms.exe:   $(DOCDIR)\doc2ms.c $(DOCDIR)\termdoc.c $(OS2TERMS)
  304.     $(CC3) $(CFLAGS3) $(TERMFLAGS) -DALL_TERM_DOC -o $@ $(DOCDIR)\doc2ms.c $(DOCDIR)\termdoc.c
  305. #
  306. # Create binary demo files
  307. #
  308. $(M)binary1: $(M)bf_test.exe
  309.     cd $(DEMODIR) & bf_test.exe & cd ..
  310. $(M)binary2: $(M)bf_test.exe
  311.     cd $(DEMODIR) & bf_test.exe & cd ..
  312. $(M)binary3: $(M)bf_test.exe
  313.     cd $(DEMODIR) & bf_test.exe & cd ..
  314. $(M)bf_test.exe : bf_test.c binary.$(O) alloc.$(O)
  315.     $(CC3) $(CFLAGS3) -o $@ bf_test.c binary.$(O) alloc.$(O)
  316. #
  317. # Clean up
  318. #
  319.  
  320. # Clean up all files temporary used
  321. clean:
  322.     IF EXIST *.$(O)                  DEL *.$(O)
  323.     IF EXIST *.$(O2)                 DEL *.$(O2)
  324.     cd $(OS2DIR) & IF EXIST *.$(O2)  DEL *.$(O2)
  325.     IF EXIST $(OS2DIR)\gnupmdrv.res  DEL $(OS2DIR)\gnupmdrv.res
  326.     IF EXIST demo\bf_test.exe        DEL demo\bf_test.exe
  327.     IF EXIST doc2*.exe               DEL doc2*.exe
  328.     IF EXIST gnuplot.ipf             DEL gnuplot.ipf
  329.     IF EXIST core                    DEL core
  330.     IF EXIST $(DOCDIR)\allterm.h     DEL $(DOCDIR)\allterm.h
  331.  
  332. # Clean up ALL files that were not part of the source distribution
  333. veryclean: clean
  334.     IF EXIST *.exe.exe               DEL gnuplot.exe
  335.     IF EXIST gnupmdrv.hlp            DEL gnupmdrv.hlp
  336.     IF EXIST gnuplot.gih             DEL gnuplot.gih
  337.     IF EXIST gnuplot.inf             DEL gnuplot.inf
  338.     IF EXIST gnuplot.dvi             DEL gnuplot.dvi
  339.     IF EXIST gnuplot.htm             DEL gnuplot.htm
  340.     IF EXIST gnuplot.tex             DEL gnuplot.tex
  341.     IF EXIST gnuplot.texi            DEL gnuplot.texi
  342.     IF EXIST gnuplot.info            DEL gnuplot.info
  343.     IF EXIST gnuplot.ms              DEL gnuplot.ms
  344.     IF EXIST gnuplot.rtf             DEL gnuplot.rtf
  345.     IF EXIST gnuplot.ps              DEL gnuplot.ps
  346.     cd demo & IF EXIST binary?       DEL binary?
  347.